1. Field of the Invention
Embodiments relate generally to process executing on a heterogeneous computing environment.
2. Background Art
In conventional parallel processing system, each computer cluster node executes software processes that includes process information associated with other processes executing on one or more computer cluster nodes. Executing software processes use process information to communicate with other processes within the parallel processing system. The process information is compiled in a listing that may be stored in memory storage on each computer cluster node. Typically, the process information listing is compiled by a master node that obtains process information from each computer cluster node. Master node then transmits the process information listing to the computer cluster nodes in the conventional parallel processing system.
This conventional technique however does not work in a parallel processing system that includes heterogeneous computing devices, where each device has different memory size and processor speed. For example, a process information listing that includes process information for millions of processes may overload computing devices that have a limited memory and processing power, such as embedded devices that include set-top boxes, mobile devices, game consoles, tablets and smart television sets, to name a few.
For instance, process information for each process may not take up a lot of memory space, such as, in a non-limiting example, 500 bytes. However, when a parallel processing system includes N computing devices and P processes on each computing device, the process information listing may have the size of P*N*500 bytes. In a large parallel processing system, a number of P processes may be several million, and each computing device may require one gigabyte (1 GB) or more of data to store the processes information listing.
In a heterogeneous parallel processing system, many computing devices are not equipped with this amount of memory storage. Additionally, using a network to transfer 1 GB or more of data to each computing device requires significant broadband and transfer time. This will introduce excessive latencies and interfere with processes execution and data transfer within the parallel processing system.